Reliable storage and the utilization of high availability storage arrays employing disk drives as the storage media are becoming evermore popular as data is stored electronically. Data is stored to, and retrieved from, an array of disks on a behalf of one or more host computer systems by storage array controllers. A major requirement of storage systems is the transfer and retrieval of data without error. Thus, storage systems and storage array controllers employ error detection and recovery algorithms to ensure data integrity.
A problem associated with high availability storage arrays is the return of incorrect data by a disk drive without an error indication. These types of errors may occur when writing data to, and reading data from storage media. Drive anomaly protection is characterized by the assurance of data integrity, persistency and location. Data integrity assurance means that all bytes in a data block are stored, retrieved and transmitted correctly. Location assurance means that the data was stored to or retrieved from the correct physical location. Persistency assurance refers to whether data is actually written to media. Thus, detection of drive write anomalies involves the cross-checking of the integrity, persistency and location of data.
An approach known to the art to detect drive anomalies begins by storing a write sequence tracking metadata. The sequence information is stored on separate disks as metadata during write operations. On a subsequent read operation, the metadata is read from both disks and verified for consistency. The sequence information may be used to determine which drive is in error when the sequence information on the data drive is different from the parity drive. If the data drive is in error, the data is extracted from the parity drive via normal reconstruction techniques. The write sequence tracking scheme is implemented with a cyclic redundancy check (CRC) or similar form of error detection and correction code to provide data integrity protection. This provides data integrity assurance at a byte level to protect against drive anomaly errors in which the majority of data in the sector or sectors is correct. The CRC information may be stored as metadata along with the write sequence tracking information.
With this approach, write operations are tracked at two levels of granularity. The first level is when the scope of a write operation is limited to an individual drive plus the associated parity drive. In this case, the level of granularity is a data block such as the cache block size used to manage the storage controller's data cache. Each data block within a data stripe has its own separate revision number. The revision numbers of all data blocks are stored on the associated parity drive.
A second level of granularity is provided when all data blocks within a stripe are written. Each storage controller maintains a monotonically increasing value that is used to track full stripe writes on a storage controller basis. Tracking full stripe writes separately allows the controller to avoid having to perform a read-modify-write function on all of the associated data block revision numbers. When a full striped write occurs, all data block revision numbers are initialized to a known value.
The approach known to the art for detecting drive anomalies employs data read operation integrity cross-checks that require reading some form of metadata from a second drive. This effectively doubles a drive input/output (I/O) workload that results in a severe performance degradation for random read I/O profiles. In typical disk drives, the estimated impact is 40% decrease in I/O per second performance if the workload averages one or more I/O operations per drive. Further, this performance impact is relatively constant across a wide range of I/O sizes, drive seek ranges, and drive I/O queue depths. The decrease in performance is due to the fact that drive I/O per second performance does not double when workload doubles. Since only half of the drive I/O operations return user data, performance decreases from the host's perspective. Consequently, an apparatus and method for performing drive anomaly detection while optimizing random read performance is necessary.